import logging  # 日志模块
from django.core.mail import send_mail  # 邮箱发送
from celery_tasks.celery_main import app
from drfstudy22 import settings

logger = logging.getLogger(__name__)  # 创建一个记录邮箱发送的日志器

# 发送邮箱的任务装饰器
@app.task(name='send_email_task')
def send_email_task(email,username,password,classes_name):
    """
    通知邮件任务
    :param email: 收件人邮箱
    :param username: 用户名
    :param password: 密码
    :param classes_name:班级名
    :return:
    """
    # 发送失败
    try:
        email_param = {
            'subject':'码趣教育-学生项目系统',  # 邮箱标题
            'message':'',
            'html_message':  # 邮箱展示的内容
                f"""
                <h2>欢迎加入码趣教育[{classes_name}]进行学习</h2>
                <h3>欢迎使用码趣项目系统</h3>
                <p>其中包含知识练习，技术研讨，相关书籍及设备购物等功能</p>
                <p>您的登录用户为：<span style='color:red'>{username}</span></p>
                <p>您的登录初始密码为：<span style='color:red'>{password}</span></p>
            """,
            'from_email':settings.EMAIL_HOST_USER,  # 邮箱发件人
            'recipient_list':[email]  # 邮箱收件人
        }

        res_email = send_mail(**email_param)  # 字典解包

    except Exception as e:
        logger.error('入学通知邮件发送【异常】[email:%s,message:%s]'%(email,e))

    else:
        if res_email:
            logger.info('入学通知邮件发送[正常][email:%s,username:%s]'%(email,username))
        else:
            logger.warning('入学通知邮件发送[失败][email:%s,username:%s]' % (email, username))

